package com.library.service;

import com.library.pojo.dto.book.BookDTO;
import com.library.pojo.dto.book.BookPageQueryDTO;
import com.library.pojo.entity.LibraryBooks;
import com.library.result.PageResult;
import com.library.result.Result;

import java.util.List;

/**
 * 管理员对图书进行增删改查
 */
public interface BookService {

    /**
     * 查询图书列表
     * @param bookPageQueryDTO 分页参数（必填：pageNum/pageSize；可选：bookId/name/author/publisher/state关键词）
     * @return PageResult<LibraryBooks>：分页图书列表
     */
    PageResult pageQuery(BookPageQueryDTO bookPageQueryDTO);

    /**
     * 根据图书编号借阅图书
     * @param bookId 图书Id
     * @return int：成功/失败提示
     */
    int borrowBook(int bookId, Integer userId);

    /**
     * 添加图书
     * @param bookDTO 添加参数（可选：name/author/publisher/price/stock等）
     */
    int insert(BookDTO bookDTO);

    /**
     * 根据图书编号修改图书信息
     * @param bookDTO 修改参数（必填：bookId；可选：name/author/publisher/price/stock/loan等）
     */
    int update(BookDTO bookDTO);

    /**
     * 通过bookId删除图书
     * @param bookId 用户Id(必填)
     */
    int deleteById(Integer bookId);
}
